package com.sky.robot.service.impl;

import com.sky.robot.entity.SkyFuncForm;
import com.sky.robot.mapper.SkyFuncFormMapper;
import com.sky.robot.service.SkyFuncFormService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.ArrayList;
import java.util.Map;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.transaction.annotation.Transactional;

import com.sky.robot.utils.JSONUtils;
import java.util.List;

/**
 * <p>
 * 功能关联表单 服务实现类
 * </p>
 *
 * @author sky
 * @since 2024-09-25
 */
@Service
public class SkyFuncFormServiceImpl extends ServiceImpl<SkyFuncFormMapper, SkyFuncForm> implements SkyFuncFormService {


    @Autowired
    private SkyFuncFormMapper skyFuncFormMapper;

    @Override
    public IPage<SkyFuncForm> listPage(IPage page, Map<String, Object> map) {
        // 查询分页数据
        List<SkyFuncForm> list = skyFuncFormMapper.listPage(page, map);
        // 查询一共多少行数据
        Map<String, Object> mPage = skyFuncFormMapper.sum(map);
        page.setRecords(list);
        page.setTotal((long) mPage.get("total" ));
        return page;
    }

    @Override
    @Transactional(readOnly = true)
    public Object get(Map<String, Object> params) {
        String id = (String) params.get("id" );
    SkyFuncForm skyFuncForm = getById(id);
        if (skyFuncForm != null) {
            String json = JSONUtils.beanToJson(skyFuncForm);
            Map<String, Object> map = JSONUtils.jsonToMap(json);
            map.putAll(params);
            params = map;
        }
        return params;
    }


    @Override
    @Transactional
    public SkyFuncForm add(SkyFuncForm skyFuncForm) {
        save(skyFuncForm);
        return skyFuncForm;
    }

    @Override
    @Transactional
    public SkyFuncForm edit(SkyFuncForm skyFuncForm) {
        updateById(skyFuncForm);
        return skyFuncForm;
    }

    @Override
    @Transactional
    public Object delete(String id) {
        removeById(id);
        return null;
    }

    @Override
    @Transactional
    public Object deleteBatch(String ids) {
        List<String> idList = new ArrayList<>();
            for(String id : ids.split(",")){
            idList.add(id);
        }
        removeByIds(idList);
        return null;
    }

}
